From 817d667da8732c6e9baf9d0d846e611f2136a31d Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Sun, 3 Dec 2006 20:02:04 +0000 Subject: [PATCH] Make sure [xy]_offset are always being initialized, fix pixbuf renderer 2006-12-03 Kristian Rietveld Make sure [xy]_offset are always being initialized, fix pixbuf renderer padding. (#108235, Sven Neuman). * gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_get_size), (gtk_cell_renderer_pixbuf_render): add padding in _render instead of _get_size. * gtk/gtkcellrendererprogress.c (gtk_cell_renderer_progress_get_size): always initialize [xy]_offset. * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): ditto. * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_get_size): ditto. --- ChangeLog | 15 +++++++++++++++ gtk/gtkcellrendererpixbuf.c | 22 ++++++++++++---------- gtk/gtkcellrendererprogress.c | 3 +++ gtk/gtkcellrenderertext.c | 5 +++++ gtk/gtkcellrenderertoggle.c | 5 +++++ 5 files changed, 40 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7e25dfb65e..9a4aef63ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2006-12-03 Kristian Rietveld + + Make sure [xy]_offset are always being initialized, fix pixbuf + renderer padding. (#108235, Sven Neuman). + + * gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_get_size), + (gtk_cell_renderer_pixbuf_render): add padding in _render instead + of _get_size. + + * gtk/gtkcellrendererprogress.c (gtk_cell_renderer_progress_get_size): + always initialize [xy]_offset. + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): ditto. + * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_get_size): + ditto. + 2006-12-03 Kristian Rietveld * gtk/gtktreeview.c (validate_visible_area): when not using an diff --git a/gtk/gtkcellrendererpixbuf.c b/gtk/gtkcellrendererpixbuf.c index 76fea367c3..1575b4cd70 100644 --- a/gtk/gtkcellrendererpixbuf.c +++ b/gtk/gtkcellrendererpixbuf.c @@ -548,25 +548,27 @@ gtk_cell_renderer_pixbuf_get_size (GtkCellRenderer *cell, calc_width = (gint) cell->xpad * 2 + pixbuf_width; calc_height = (gint) cell->ypad * 2 + pixbuf_height; - if (x_offset) *x_offset = 0; - if (y_offset) *y_offset = 0; - if (cell_area && pixbuf_width > 0 && pixbuf_height > 0) { if (x_offset) { *x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ? - 1.0 - cell->xalign : cell->xalign) * - (cell_area->width - calc_width - 2 * cell->xpad)); - *x_offset = MAX (*x_offset, 0) + cell->xpad; + (1.0 - cell->xalign) : cell->xalign) * + (cell_area->width - calc_width)); + *x_offset = MAX (*x_offset, 0); } if (y_offset) { *y_offset = (cell->yalign * - (cell_area->height - calc_height - 2 * cell->ypad)); - *y_offset = MAX (*y_offset, 0) + cell->ypad; + (cell_area->height - calc_height)); + *y_offset = MAX (*y_offset, 0); } } + else + { + if (x_offset) *x_offset = 0; + if (y_offset) *y_offset = 0; + } if (width) *width = calc_width; @@ -602,8 +604,8 @@ gtk_cell_renderer_pixbuf_render (GtkCellRenderer *cell, &pix_rect.width, &pix_rect.height); - pix_rect.x += cell_area->x; - pix_rect.y += cell_area->y; + pix_rect.x += cell_area->x + cell->xpad; + pix_rect.y += cell_area->y + cell->ypad; pix_rect.width -= cell->xpad * 2; pix_rect.height -= cell->ypad * 2; diff --git a/gtk/gtkcellrendererprogress.c b/gtk/gtkcellrendererprogress.c index 97de1157dd..4a1183e16e 100644 --- a/gtk/gtkcellrendererprogress.c +++ b/gtk/gtkcellrendererprogress.c @@ -319,6 +319,9 @@ gtk_cell_renderer_progress_get_size (GtkCellRenderer *cell, if (height) *height = cell_area->height; } + + if (x_offset) *x_offset = 0; + if (y_offset) *y_offset = 0; } static void diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c index 34b4b6acd0..b3cf5e7f16 100644 --- a/gtk/gtkcellrenderertext.c +++ b/gtk/gtkcellrenderertext.c @@ -1585,6 +1585,11 @@ get_size (GtkCellRenderer *cell, *y_offset = MAX (*y_offset, 0); } } + else + { + if (x_offset) *x_offset = 0; + if (y_offset) *y_offset = 0; + } g_object_unref (layout); } diff --git a/gtk/gtkcellrenderertoggle.c b/gtk/gtkcellrenderertoggle.c index 3957d19cc5..2d01753912 100644 --- a/gtk/gtkcellrenderertoggle.c +++ b/gtk/gtkcellrenderertoggle.c @@ -310,6 +310,11 @@ gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell, *y_offset = MAX (*y_offset, 0); } } + else + { + if (x_offset) *x_offset = 0; + if (y_offset) *y_offset = 0; + } } static void -- 2.30.2